//
// Created by wkm on 2023-12-06.
//

#ifndef MYSYSTEMCLEARNING_INIT_PACKET_H
#define MYSYSTEMCLEARNING_INIT_PACKET_H

#include "systemc.h"
#include "../../TimeLogicModeling/SRLatch/switch/state_update.h"

const int XMIT_ID = 3;
const int DONE_ID = 1;

struct packet : public sc_dt::sc_bit {
    sc_uint<2> packet_id;
    states packet_states;
};

SC_MODULE(init_packet) {
    sc_in<bool> send;
    sc_out<packet> tsq;

    void prc_init_packet();

    SC_CTOR(init_packet) {
        SC_METHOD(prc_init_packet);
        sensitive << send;
    }
};

#endif //MYSYSTEMCLEARNING_INIT_PACKET_H
